package com.hmall.item.web;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hmall.common.dto.PageDTO;
import com.hmall.item.pojo.Item;
import com.hmall.item.service.IItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@RestController
@RequestMapping("item")
public class ItemController {

    @Autowired
    private IItemService itemService;

    @GetMapping("/list")
    public PageDTO page(@RequestParam("page") Integer page,@RequestParam("size") Integer size) {
        PageDTO<Item> pageDTO= itemService.list4page(page, size);
        return pageDTO;
    }

    @GetMapping("/{id}")
    public Item selectById(@PathVariable("id") Long id) {
        Item item = itemService.getById(id);
        return item;
    }

    @PostMapping
    public void add(@RequestBody Item item) {
        if (StringUtils.isEmpty(item.getName())) {
            throw new RuntimeException("名字不能为空");
        }
        itemService.save(item);
    }

    @PutMapping("/status/{id}/{status}")
    public void change(@PathVariable("id") Long id, @PathVariable("status") Integer status) {
        /*UpdateWrapper<Item> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", id);
        updateWrapper.set("status", status);
        //updateWrapper.set("update_time", new Date());
        itemService.update(updateWrapper);*/
        Item item = itemService.getById(id);
        item.setStatus(status);
        itemService.updateById(item);

    }

    @PutMapping
    public void update(@RequestBody Item item) {
        item.setStatus(null);
        itemService.updateById(item);
    }

    @DeleteMapping("/{id}")
    public void deleteById(@PathVariable Long id) {
        /*UpdateWrapper<Item> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", id);
        updateWrapper.set("status", 3);
        updateWrapper.set("update_time", new Date());
        itemService.update(updateWrapper);*/
        Item item = itemService.getById(id);
        item.setStatus(3);
        itemService.updateById(item);
    }
}
